/**
 * Unicode 接口及相关类定义
 * @author keller
 * @date 2025-06-26 23:34:31
 */
import request from '@/utils/request'
import {ApiResponse,PageData,PageQuery,BaseDetail} from "@/ts/CommonTypes"
import { downloadExcel } from "@/api/ApiUtils"
const urlPrefix = "/api/sysUnicode"

/**
 * Unicode 视图类，用于在页面上展示数据
 */
export class SysUnicodeVO extends BaseDetail{
   // 标题
   title: string | null ;
   // 描述
   description: string | null ;
   // 起始位置
   beginHex: string | null ;
   // 结束位置
   endHex: string | null ;
   // 容量
   capacity: number | null ;
    constructor(init?: Partial<SysUnicodeVO>) {
        super();
        if (init) {
            Object.assign(this, init);
        }
    }
};

/**
 * Unicode 查询类，用于查询构造条件
 */
export class SysUnicodeQuery extends PageQuery{
    constructor(init?: Partial<SysUnicodeQuery>) {
        super();
        if (init) {
            Object.assign(this, init);
        }
    }
};


/**
 * 查询详情
 */
export function apiGetDetail(id:Number | String){
    return request<ApiResponse<SysUnicodeVO>>({
        url: urlPrefix + '/baseGetById',
        method: 'GET',
        params: { id },
    })
}

/**
 * 分页查询
 */
export function apiGetList(query:SysUnicodeQuery ) {
    return request<ApiResponse<PageData<SysUnicodeVO>>>({
        url: urlPrefix + '/basePage',
        method: 'POST',
        data: query,
    })
}
export function apiQueryList(query:SysUnicodeQuery ) {
    return request<ApiResponse<SysUnicodeVO[]>>({
        url: urlPrefix + '/queryList',
        method: 'POST',
        data: query,
    })
}

/**
 * 保存数据
 */
export function apiSave(vo:SysUnicodeVO) {
    return request({ url: urlPrefix + '/baseSave',data: vo ,method: 'POST'});
}

/**
 * 删除数据
 */
export function apiDeleteById(id:Number | String){
    return request({ url: urlPrefix + '/baseDelete',data: {id:id},method: 'POST'});
}

/**
 * 数据导出
 */
export function apiExportList(query: SysUnicodeQuery) {
    request.post(urlPrefix + '/baseExport', query, { responseType: "blob" })
        .then((res: Blob) => {
            downloadExcel(res, "SysUnicode列表.xlsx")
        })
        .catch(error => {
            console.error("导出失败:", error)
        })
}



